package com.cskaoyan.javase.oop1._15access._3role;
/**
 * 访问权限修饰符的作用
 * 最基本的，访问权限修饰符自然是用来控制访问权限的（这是废话），但访问权限修饰符的作用远不止此，因为访问权限是可以被破解的。Java自身就可以利用`反射`的技术，破解访问权限，访问原本访问不到的内容（比如私有）。
 *
 * 那么访问权限修饰符，更重要的用途就是：
 * >告诉代码的使用者，哪些地方不要触碰，哪些地方应该使用。起到警告、约束和指导代码使用者的功能：
 *      假如是private的成员,外部就无需了解,也不应该使用
 *      如果是public的成员,就需要提供给外界使用
 *      1.最典型的,不应该去触碰的案例.
 *          比如工具类,根本无需创建对象使用,可以直接类名点使用,既然不需要创建对象,那干脆就不要创建对象,告诉使用者不应该创建对象.只需要把构造器私有化即可.
 *      所有的工具类都不应该忘记私有化它的构造器,用来告诉使用者不要创建对象
 *          还有方法的中间过程方法,变量,都不需要给外界使用,都应该私有化
 *      还有就是工厂的设计模式,创建对象不再依赖于构造器创建,而依赖于一个被称之为"工厂"的类
 *          这时该类的构造器显然就不能公共了,必须私有化.
 *      2.最典型的,告诉你应该使用的案例.
 *          比如工具类中public修饰的方法,既然它是公共的,目的就是为了暴露给外界使用的.
 *
 *  总结:
 *        在一个类当中,成员的访问权限应该是越紧越好,能不给外界用的,直接私有化.必须给外界用的,才能public修饰
 *        这是我们在设计类时,非常重要的一个原则.
 * @since 10:15
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {

    }
}
class A{
    // test方法是为了给外界使用
    public void test(){
        test2();
    }

    // test2()方法是为了完成test功能而出现的,这个方法不需要给外界使用,应该私有化
    private void test2() {

    }
}

class B{
    private int a;
}
